#ifndef DBSTORAGE_DBSTORAGE_BASE_HPP
#define DBSTORAGE_DBSTORAGE_BASE_HPP

#include "DbStorage/DbStorageConfig.hpp"

namespace CaseDB { class Connection; }

namespace DbStorage
{

/// @ingroup DbStorage
/// @brief It requires the basic information that will be needed by database storage specialization.
///
/// The basic required information consists of database connection.
/// @warning The storage object doesn't own the database connection!
class DBSTORAGE_API DbStorageBase
{
public:
	/// @brief It initializes the database connection.
	/// @param pDbConnection the database connection to be used for storage operations.
	/// @pre the database connection is not NULL.
	DbStorageBase( CaseDB::Connection* pDbConnection);
	
	/// @brief Dummy destructor.
	virtual ~DbStorageBase();

protected:
	CaseDB::Connection* pDbConnection_;
};


} // namespace DbStorage

#endif // DBSTORAGE_DBSTORAGE_BASE_HPP